//分页工具条
function PageBar(name, id, sqlId, dataHandle, parameter, pageNum, pageSize, pageList){
	var me = this;
	me.config = new Object();
	me.config.name = name;
	me.config.id = id;
	me.config.sqlId = sqlId;
	me.config.dataHandle = dataHandle;						//数据处理方法
	me.config.parameter = parameter ? parameter : {};		//sql参数
	me.config.pageNum = pageNum ? pageNum : 7;				//页面页码数
	me.config.pageSize = pageSize ? pageSize : 10;			//页面大小
	me.config.pageList = pageList ? pageList : [10,20,30];	//页面大小列表
	
	me.config.page = 1;					//当前页
	me.config.total = 0;				//总页数
	me.config.records = 0;				//总记录数
	
	var html = "<span id=\"pagefirst\">首页</span>"
		 + "<span id=\"pageprev\">上一页</span>"
		 + "<span id=\"pagecells\"></span>"
		 + "<span id=\"pagenext\">下一页</span>"
		 + "<span id=\"pagelast\">尾页</span>"
		 + "<input type=\"text\" id=\"pageindex\"/>/<label id=\"pagecount\"></label>"
		 + "<span id=\"pagego\">跳转</span>"
		 + "<span id=\"records\"></span>";
	jQuery("#"+id).empty();
	jQuery("#"+id).append(html);
	
	jQuery("#"+id).find("#pagefirst").click(function (){
		me.getData(1, me.config.pageSize);
	});
	jQuery("#"+id).find("#pageprev").click(function (){
		if(me.config.page-1 > 0) me.getData(me.config.page-1, me.config.pageSize);
	});
	jQuery("#"+id).find("#pagenext").click(function (){
		if(me.config.page+1 <= me.config.total) me.getData(me.config.page+1, me.config.pageSize);
	});
	jQuery("#"+id).find("#pagelast").click(function (){
		me.getData(me.config.total, me.config.pageSize);
	});
	jQuery("#"+id).find("#pagego").click(function (){
		var pageindex = jQuery("#"+me.config.id).find("#pageindex");
		var k = pageindex.val();
        if (isNaN(k)) {
            k = me.config.page;
        } else if (k < 1) {
            k = 1;
        } else if (k > me.config.total) {
            k = me.config.total;
        }
        me.getData(k, me.config.pageSize);
	});
	
	me.getData(1, me.config.pageSize);
}

PageBar.prototype.search = function(parameter){
	var me = this;
	me.config.parameter = parameter ? parameter : {};
	me.getData(1, me.config.pageSize);
}

PageBar.prototype.getData = function(page, pageSize){
	var me = this;
	var data = AjaxUtil.command.paging(me.config.sqlId, me.config.parameter, (page-1)*pageSize, pageSize);
	if(AjaxUtil.command.isSucceed(data)){
		me.config.page = page;
		me.config.total = Math.ceil(data.total/pageSize);
		me.config.records = data.total;
		me.config.dataHandle(me, data.query);
		me.show();
	} else {
		me.config.dataHandle(me, []);
		me.show();
	}
}

PageBar.prototype.show = function(){
	var me = this;
	var pagecells = jQuery("#"+me.config.id).find("#pagecells");
	var c = Math.floor((me.config.pageNum-1) / 2);
	var s = me.config.page-c < 1 ? 1 : me.config.page-c;
	var e = s+me.config.pageNum > me.config.total+1 ? me.config.total+1 : s+me.config.pageNum;
	s = e-me.config.pageNum < 1 ? 1 : e-me.config.pageNum;
	pagecells.empty();
	for(var i=s; i<e; i++){
		if(i == me.config.page){
			pagecells.append("<a href=\"javascript:void(0);\" class=\"pagecell anonable\" data=\"\">"+i+"</a>");
		} else {
			pagecells.append("<a href=\"javascript:"+me.config.name+".getData("+i+", "+me.config.pageSize+");\" class=\"pagecell\" data=\"\">"+i+"</a>");
		}
	}
	
	jQuery("#"+me.config.id).find("#pageindex").val(me.config.page);
	jQuery("#"+me.config.id).find("#pagecount").html(me.config.total);
	jQuery("#"+me.config.id).find("#records").html("共"+me.config.records+"条记录");
	
	if(me.config.page > 1){
		jQuery("#"+me.config.id).find("#pagefirst").removeClass("nonable");
		jQuery("#"+me.config.id).find("#pageprev").removeClass("nonable");
	} else{
		jQuery("#"+me.config.id).find("#pageprev").addClass("nonable");
		jQuery("#"+me.config.id).find("#pagefirst").addClass("nonable");
	}
	if(me.config.page < me.config.total){
		jQuery("#"+me.config.id).find("#pagenext").removeClass("nonable");
		jQuery("#"+me.config.id).find("#pagelast").removeClass("nonable");
	}else{
		jQuery("#"+me.config.id).find("#pagenext").addClass("nonable");
		jQuery("#"+me.config.id).find("#pagelast").addClass("nonable");
	}
	if(me.config.total == 0){
		jQuery("#"+me.config.id).find("#pagego").addClass("nonable");
	} else {
		jQuery("#"+me.config.id).find("#pagego").removeClass("nonable");
	}
}